package com.translate.web.param;

import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.translate.web.constant.ValidateCondtionAndMessage;
import com.translate.web.param.contract.IManuscriptAddParam;
import com.translate.web.param.contract.IPayManagerAddParam;
import com.translate.web.param.contract.IPayManagerServiceAddParam;

/**
 * @param <P> 单个服务
 * @param <M> 稿件
 */
public class PayManagerAddParam<P extends IPayManagerServiceAddParam, M extends IManuscriptAddParam> implements IPayManagerAddParam<P, M> {// 订单标识
//	// 1需要发票，0不需要
//	@NotNull
//	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
//	@Max(value = ValidateCondtionAndMessage.MAX_STATUS, message = ValidateCondtionAndMessage.MAX_STATUS_MSG)
//	private Byte translate;

	// 支付类型编号
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_ID, message = ValidateCondtionAndMessage.MIN_ID_MSG)
	private Integer payType;
	
	private @Valid P[] itemService;
	
	/**
	 * 数据作图与科研绘图服务
	 */
	private @Valid P[] dataPlotting;
	
	/**
     * 基础服务 稿件
     */
	private @Valid M[] manuscripts;
	
	
	/**
     * 数据作图 稿件
     */
	private @Valid M[] plottingManuscripts;
	
	
	private int assocId = 0;
	
	
	public void setAssocId(int assocId) {
		this.assocId = assocId;
	}

	public M[] getPlottingManuscripts() {
		return plottingManuscripts;
	}

	public void setPlottingManuscripts(M[] plottingManuscripts) {
		this.plottingManuscripts = plottingManuscripts;
	}

	private int userId;
	
	public P[] getItemService() {
		return itemService;
	}

	public void setItemService(P[] itemService) {
		this.itemService = itemService;
	}

	public P[] getDataPlotting() {
		return dataPlotting;
	}

	public void setDataPlotting(P[] dataPlotting) {
		this.dataPlotting = dataPlotting;
	}

	public M[] getManuscripts() {
		return manuscripts;
	}

	public void setManuscripts(M[] manuscripts) {
		this.manuscripts = manuscripts;
	}
//
//	public Byte getTranslate() {
//		return translate;
//	}
//
//	public void setTranslate(Byte translate) {
//		this.translate = translate;
//	}

	public Integer getPayType() {
		return payType;
	}

	public void setPayType(Integer payType) {
		this.payType = payType;
	}


	public int getUserId() {
		return userId;
	}

	public void setUserId(int userId) {
		this.userId = userId;
	}

	public Integer getAssocId() {
		return assocId;
	}

	public void setAssocId(Integer assocId) {
		this.assocId = assocId;
	}
}